#include<stdio.h>
#include<string.h>
#include"workload.h"

int main()
{
	int i,j,A=0;
	Mat mat;
	scanf("%d",&mat.n);
	for(i=0;i<mat.n;i++)
		for(j=0;j<mat.n;j++)
			scanf("%d",&mat.c[i][j]);
	Ini(&mat);
	
	do
	{
		cover(&(mat.cov));//求最小覆盖
		change(&(mat.cov));//修改界值
	}while((mat.cov).r<(mat.cov).n);
	
	for(i=0;i<mat.n;i++)
		A+=(mat.cov).lineedge[i]+(mat.cov).rowedge[i];
	
	printf("%d\n",A);
	return 0;
}
